Imports System.Data.SqlClient
''' <nombre>
''' Direccion
''' </nombre>
Public Class cls_direccion_

    Implements ICloneable

#Region "Variables ..."
    Private int_iddireccion As Integer = 0
    Private int_idpais As Integer = 0
    Private int_idprovincia As Integer = 0
    Private int_idlocalidad As Integer = 0
    Private int_idbarrio As Integer = 0
    Private str_codigopostal As String = ""
    Private str_domicilio As String = ""
    Private str_altura As String = ""
    Private str_piso As String = ""
    Private str_departamento As String = ""
    Private int_idtipodireccion As Integer = 0
    Private int_idtercero As Integer = 0
    Private str_observaciones As String = ""
    Private bit_primario As Boolean = False

    Private obj_tipodireccion As cls_tipodireccion_ = Nothing
    Private obj_pais As cls_pais_ = Nothing
    Private obj_provincia As cls_provincia_ = Nothing
    Private obj_localidad As cls_localidad_ = Nothing
    Private obj_barrio As cls_barrio_ = Nothing

    Private col_Items As Collections.Generic.List(Of cls_direccion_) = Nothing
#End Region

    Public Overrides Function ToString() As String
        'Return "( " & tipodireccion.ToString & ") - " & domicilio & " " & altura
        If Not IsNothing(tipodireccion) Then
            Select Case str_formatoCombos
                Case "Nombre#########(15) - sigla(5)"
                    Return (domicilio & " " & altura).PadRight(15) & " - " & tipodireccion.ToString.PadRight(5)
                Case "sigla(5) - Nombre#########(15)"
                    Return tipodireccion.ToString.PadRight(5) & " - " & (domicilio & " " & altura).PadRight(15)
                Case "Nombre - sigla"
                    Return (domicilio & " " & altura) & " - " & tipodireccion.ToString
                Case "sigla - Nombre"
                    Return tipodireccion.ToString & " - " & (domicilio & " " & altura)
                Case "Nombre", "Sigla"
                    Return domicilio & " " & altura
                Case Else
                    Return tipodireccion.ToString & " - " & (domicilio & " " & altura)
            End Select
        Else
            Select Case str_formatoCombos
                Case "Nombre#########(15) - sigla(5)"
                    Return (domicilio & " " & altura).PadRight(15) '& " - " & tipodireccion.ToString.PadRight(5)
                Case "sigla(5) - Nombre#########(15)"
                    Return (domicilio & " " & altura).PadRight(15)
                Case "Nombre - sigla"
                    Return (domicilio & " " & altura) '& " - " & tipodireccion.ToString
                Case "sigla - Nombre"
                    Return (domicilio & " " & altura)
                Case "Nombre", "Sigla"
                    Return domicilio & " " & altura
                Case Else
                    Return (domicilio & " " & altura)
            End Select
        End If
        
    End Function

#Region "Propiedades ..."
    ReadOnly Property This
        Get
            Return Me
        End Get
    End Property
    ReadOnly Property ThisDescripcion As String
        Get
            Return Me.ToString
        End Get
    End Property
    ReadOnly Property pKey
        Get
            Return iddireccion
        End Get
    End Property
    ''' <id>
    ''' True
    ''' </id>
    Property iddireccion() As Integer
        Get
            iddireccion = int_iddireccion
        End Get
        Set(ByVal value As Integer)
            int_iddireccion = value
        End Set
    End Property
    ''' <nombre>
    ''' Identificador
    ''' </nombre>
    Property idpais() As Integer
        Get
            idpais = int_idpais
        End Get
        Set(ByVal value As Integer)
            int_idpais = value
        End Set
    End Property
    ''' <nombre>
    ''' Identificador
    ''' </nombre>
    Property idprovincia() As Integer
        Get
            idprovincia = int_idprovincia
        End Get
        Set(ByVal value As Integer)
            int_idprovincia = value
        End Set
    End Property
    ''' <nombre>
    ''' Identificador
    ''' </nombre>
    Property idlocalidad() As Integer
        Get
            idlocalidad = int_idlocalidad
        End Get
        Set(ByVal value As Integer)
            int_idlocalidad = value
        End Set
    End Property
    ''' <nombre>
    ''' Identificador
    ''' </nombre>
    Property idbarrio() As Integer
        Get
            idbarrio = int_idbarrio
        End Get
        Set(ByVal value As Integer)
            int_idbarrio = value
        End Set
    End Property
    ''' <nombre>
    ''' Codigo Postal
    ''' </nombre>
    Property codigopostal() As String
        Get
            codigopostal = str_codigopostal
        End Get
        Set(ByVal value As String)
            str_codigopostal = value
        End Set
    End Property
    ''' <nombre>
    ''' Domicilio
    ''' </nombre>
    Property domicilio() As String
        Get
            domicilio = str_domicilio
        End Get
        Set(ByVal value As String)
            str_domicilio = value
        End Set
    End Property
    ''' <nombre>
    ''' Altura
    ''' </nombre>
    Property altura() As String
        Get
            altura = str_altura
        End Get
        Set(ByVal value As String)
            str_altura = value
        End Set
    End Property
    ''' <nombre>
    ''' Piso
    ''' </nombre>
    Property piso() As String
        Get
            piso = str_piso
        End Get
        Set(ByVal value As String)
            str_piso = value
        End Set
    End Property
    ''' <nombre>
    ''' Departamento
    ''' </nombre>
    Property departamento() As String
        Get
            departamento = str_departamento
        End Get
        Set(ByVal value As String)
            str_departamento = value
        End Set
    End Property
    ''' <nombre>
    ''' Identificador
    ''' </nombre>
    Property idtipodireccion() As Integer
        Get
            idtipodireccion = int_idtipodireccion
        End Get
        Set(ByVal value As Integer)
            int_idtipodireccion = value
        End Set
    End Property
    ''' <nombre>
    ''' Identificador
    ''' </nombre>
    Property idtercero() As Integer
        Get
            idtercero = int_idtercero
        End Get
        Set(ByVal value As Integer)
            int_idtercero = value
        End Set
    End Property
    ''' <nombre>
    ''' Observaciones
    ''' </nombre>
    Property observaciones() As String
        Get
            observaciones = str_observaciones
        End Get
        Set(ByVal value As String)
            str_observaciones = value
        End Set
    End Property
    Property primario() As Boolean
        Get
            primario = bit_primario
        End Get
        Set(ByVal value As Boolean)
            bit_primario = value
        End Set
    End Property
    ''' <importar>
    ''' True
    ''' </importar>
    Property tipodireccion() As cls_tipodireccion_
        Get
            If IsNothing(obj_tipodireccion) Then
                obj_tipodireccion = New cls_tipodireccion_
                If Not obj_tipodireccion.Buscar(idtipodireccion) Then
                    obj_tipodireccion = Nothing
                End If
            End If
            tipodireccion = obj_tipodireccion
        End Get
        Set(ByVal value As cls_tipodireccion_)
            obj_tipodireccion = value
        End Set
    End Property

    Property pais() As cls_pais_
        Get
            If IsNothing(obj_pais) Then
                obj_pais = New cls_pais_
                If Not obj_pais.Buscar(idpais) Then
                    obj_pais = Nothing
                End If
            End If
            pais = obj_pais
        End Get
        Set(ByVal value As cls_pais_)
            obj_pais = value
        End Set
    End Property

    Property provincia() As cls_provincia_
        Get
            If IsNothing(obj_provincia) Then
                obj_provincia = New cls_provincia_
                If Not obj_provincia.Buscar(idprovincia) Then
                    obj_provincia = Nothing
                End If
            End If
            provincia = obj_provincia
        End Get
        Set(ByVal value As cls_provincia_)
            obj_provincia = value
        End Set
    End Property

    Property localidad() As cls_localidad_
        Get
            If IsNothing(obj_localidad) Then
                obj_localidad = New cls_localidad_
                If Not obj_localidad.Buscar(idlocalidad) Then
                    obj_localidad = Nothing
                End If
            End If
            localidad = obj_localidad
        End Get
        Set(ByVal value As cls_localidad_)
            obj_localidad = value
        End Set
    End Property

    Property barrio() As cls_barrio_
        Get
            If IsNothing(obj_barrio) Then
                obj_barrio = New cls_barrio_
                If Not obj_barrio.Buscar(idbarrio) Then
                    obj_barrio = Nothing
                End If
            End If
            barrio = obj_barrio
        End Get
        Set(ByVal value As cls_barrio_)
            obj_barrio = value
        End Set
    End Property

    Property Items() As Collections.Generic.List(Of cls_direccion_)
        Get
            Items = col_Items
        End Get
        Set(ByVal value As Collections.Generic.List(Of cls_direccion_))
            col_Items = value
        End Set
    End Property
#End Region

    Private Sub CargarColeccion(ByVal obj_Reader As SqlDataReader)
        col_Items = New Collections.Generic.List(Of cls_direccion_)
        While obj_Reader.Read()
            Dim Elemento As New cls_direccion_
            Elemento.int_iddireccion = (obj_Reader.GetValue(obj_Reader.GetOrdinal("iddireccion")))

            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idpais"))) = False Then
                Elemento.int_idpais = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idpais")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idprovincia"))) = False Then
                Elemento.int_idprovincia = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idprovincia")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idlocalidad"))) = False Then
                Elemento.int_idlocalidad = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idlocalidad")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idbarrio"))) = False Then
                Elemento.int_idbarrio = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idbarrio")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("codigopostal"))) = False Then
                Elemento.str_codigopostal = (obj_Reader.GetValue(obj_Reader.GetOrdinal("codigopostal")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("domicilio"))) = False Then
                Elemento.str_domicilio = (obj_Reader.GetValue(obj_Reader.GetOrdinal("domicilio")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("altura"))) = False Then
                Elemento.str_altura = (obj_Reader.GetValue(obj_Reader.GetOrdinal("altura")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("piso"))) = False Then
                Elemento.str_piso = (obj_Reader.GetValue(obj_Reader.GetOrdinal("piso")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("departamento"))) = False Then
                Elemento.str_departamento = (obj_Reader.GetValue(obj_Reader.GetOrdinal("departamento")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idtipodireccion"))) = False Then
                Elemento.int_idtipodireccion = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idtipodireccion")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idtercero"))) = False Then
                Elemento.int_idtercero = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idtercero")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("observaciones"))) = False Then
                Elemento.str_observaciones = (obj_Reader.GetValue(obj_Reader.GetOrdinal("observaciones")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("primario"))) = False Then
                Elemento.bit_primario = (obj_Reader.GetValue(obj_Reader.GetOrdinal("primario")))
            End If
            col_Items.Add(Elemento)
        End While
    End Sub

    Public Sub CargarVariables(ByVal obj_Reader As SqlDataReader, Optional read As Boolean = True)
        Dim tabla As String = ""
        If read Then
            obj_Reader.Read()
        Else
            tabla = "direccion_"
        End If

        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "iddireccion"))) = False Then
            int_iddireccion = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "iddireccion")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idpais"))) = False Then
            int_idpais = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idpais")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idprovincia"))) = False Then
            int_idprovincia = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idprovincia")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idlocalidad"))) = False Then
            int_idlocalidad = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idlocalidad")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idbarrio"))) = False Then
            int_idbarrio = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idbarrio")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "codigopostal"))) = False Then
            str_codigopostal = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "codigopostal")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "domicilio"))) = False Then
            str_domicilio = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "domicilio")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "altura"))) = False Then
            str_altura = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "altura")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "piso"))) = False Then
            str_piso = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "piso")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "departamento"))) = False Then
            str_departamento = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "departamento")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idtipodireccion"))) = False Then
            int_idtipodireccion = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idtipodireccion")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idtercero"))) = False Then
            int_idtercero = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "idtercero")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "observaciones"))) = False Then
            str_observaciones = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "observaciones")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "primario"))) = False Then
            bit_primario = (obj_Reader.GetValue(obj_Reader.GetOrdinal(tabla & "primario")))
        End If

        If Not read Then
            tipodireccion = New cls_tipodireccion_
            tipodireccion.CargarVariables(obj_Reader, False)
        End If
    End Sub

    Public Function Nuevo(Optional ByVal ObtenerID As Boolean = False) As Boolean
        Nuevo = False
        Dim obj_Conexion As New cls_Conexion
        Try
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "direccion__Nuevo"
                .Parameters.Add("@idpais", SqlDbType.Int).Value = IIf(int_idpais = 0, DBNull.Value, int_idpais)
                .Parameters.Add("@idprovincia", SqlDbType.Int).Value = IIf(int_idprovincia = 0, DBNull.Value, int_idprovincia)
                .Parameters.Add("@idlocalidad", SqlDbType.Int).Value = IIf(int_idlocalidad = 0, DBNull.Value, int_idlocalidad)
                .Parameters.Add("@idbarrio", SqlDbType.Int).Value = IIf(int_idbarrio = 0, DBNull.Value, int_idbarrio)
                .Parameters.Add("@codigopostal", SqlDbType.NVarChar).Value = str_codigopostal
                .Parameters.Add("@domicilio", SqlDbType.NVarChar).Value = str_domicilio
                .Parameters.Add("@altura", SqlDbType.NVarChar).Value = str_altura
                .Parameters.Add("@piso", SqlDbType.NVarChar).Value = str_piso
                .Parameters.Add("@departamento", SqlDbType.NVarChar).Value = str_departamento
                .Parameters.Add("@idtipodireccion", SqlDbType.Int).Value = IIf(int_idtipodireccion = 0, DBNull.Value, int_idtipodireccion)
                .Parameters.Add("@idtercero", SqlDbType.Int).Value = int_idtercero
                .Parameters.Add("@observaciones", SqlDbType.NVarChar).Value = str_observaciones
                .Parameters.Add("@primario", SqlDbType.Bit).Value = bit_primario
                .ExecuteNonQuery()
            End With
            Nuevo = True
            If ObtenerID Then
                CargarUltimo()
            End If
        Catch ex As SqlClient.SqlException
            Throw New Exception("Error al Crear el registro de direccion_." & Chr(13) & _
           "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
           "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
           "Descripción: " & ex.Message)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
        End Try
    End Function

    Public Sub Modificar()
        Dim obj_Conexion As New cls_Conexion
        Try
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "direccion__Modificar"
                .Parameters.Add("@iddireccion", SqlDbType.Int).Value = int_iddireccion
                .Parameters.Add("@idpais", SqlDbType.Int).Value = IIf(int_idpais = 0, DBNull.Value, int_idpais)
                .Parameters.Add("@idprovincia", SqlDbType.Int).Value = IIf(int_idprovincia = 0, DBNull.Value, int_idprovincia)
                .Parameters.Add("@idlocalidad", SqlDbType.Int).Value = IIf(int_idlocalidad = 0, DBNull.Value, int_idlocalidad)
                .Parameters.Add("@idbarrio", SqlDbType.Int).Value = IIf(int_idbarrio = 0, DBNull.Value, int_idbarrio)
                .Parameters.Add("@codigopostal", SqlDbType.NVarChar).Value = str_codigopostal
                .Parameters.Add("@domicilio", SqlDbType.NVarChar).Value = str_domicilio
                .Parameters.Add("@altura", SqlDbType.NVarChar).Value = str_altura
                .Parameters.Add("@piso", SqlDbType.NVarChar).Value = str_piso
                .Parameters.Add("@departamento", SqlDbType.NVarChar).Value = str_departamento
                .Parameters.Add("@idtipodireccion", SqlDbType.Int).Value = IIf(int_idtipodireccion = 0, DBNull.Value, int_idtipodireccion)
                .Parameters.Add("@idtercero", SqlDbType.Int).Value = int_idtercero
                .Parameters.Add("@observaciones", SqlDbType.NVarChar).Value = str_observaciones
                .Parameters.Add("@primario", SqlDbType.Bit).Value = bit_primario
                .ExecuteNonQuery()
            End With
        Catch ex As SqlClient.SqlException
            Throw New Exception("Error al Modificar el registro de direccion_." & Chr(13) & _
           "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
           "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
           "Descripción: " & ex.Message)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
        End Try
    End Sub

    Public Sub Eliminar(ByVal iddireccion As Integer)
        Dim obj_Conexion As New cls_Conexion
        Try
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "direccion__Eliminar"
                .Parameters.Add("@iddireccion", SqlDbType.Int).Value = iddireccion
                .ExecuteNonQuery()
            End With
        Catch ex As SqlClient.SqlException
            Throw New Exception("Error al Eliminar el registro de direccion_." & Chr(13) & _
           "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
           "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
           "Descripción: " & ex.Message)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
        End Try
    End Sub

    Public Function Buscar(ByVal iddireccion As Integer) As Boolean
        Dim obj_Conexion As New cls_Conexion
        Dim obj_Reader As SqlDataReader
        Try
            Buscar = False
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "direccion__Buscar"
                .Parameters.Add("@iddireccion", SqlDbType.Int).Value = iddireccion
            End With
            obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
            If obj_Reader.HasRows Then
                CargarVariables(obj_Reader)
                Buscar = True
            End If
        Catch ex As SqlClient.SqlException
            Throw New Exception("Error al Buscar el registro de direccion_." & Chr(13) & _
           "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
           "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
           "Descripción: " & ex.Message)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
            obj_Reader = Nothing
        End Try
    End Function

    Public Sub CargarUltimo()
        Dim obj_Conexion As New cls_Conexion
        Dim obj_Reader As SqlDataReader
        Try
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "direccion__CargarUltimo"
            End With
            obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
            If obj_Reader.HasRows Then
                CargarVariables(obj_Reader)
            End If
        Catch ex As SqlClient.SqlException
            Throw New Exception("Error al CargarUltimo registro de direccion_." & Chr(13) & _
           "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
           "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
           "Descripción: " & ex.Message)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
            obj_Reader = Nothing
        End Try
    End Sub

    Public Function CargarTodos() As Boolean
        Dim obj_Conexion As New cls_Conexion
        Dim obj_Reader As SqlDataReader
        Try
            CargarTodos = False
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "direccion__CargarTodos"
            End With
            obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
            If obj_Reader.HasRows Then
                CargarColeccion(obj_Reader)
                CargarTodos = True
            End If
        Catch ex As SqlClient.SqlException
            Throw New Exception("Error al CargarTodos los registros de direccion_." & Chr(13) & _
           "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
           "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
           "Descripción: " & ex.Message)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
            obj_Reader = Nothing
        End Try
    End Function



    Public Function CargarXidtercero(ByVal idtercero As Integer) As Boolean
        Dim obj_Conexion As New cls_Conexion
        Dim obj_Reader As SqlDataReader
        Try
            CargarXidtercero = False
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "direccion__CargarXidtercero"
                .Parameters.Add("@idtercero", SqlDbType.Int).Value = idtercero
            End With
            obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
            If obj_Reader.HasRows Then
                CargarColeccion(obj_Reader)
                CargarXidtercero = True
            End If
        Catch ex As SqlClient.SqlException
            Throw New Exception("Error al CargarXidtercero los registros de direccion_." & Chr(13) & _
           "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
           "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
           "Descripción: " & ex.Message)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
            obj_Reader = Nothing
        End Try
    End Function

    Public Function CargarXidterceroprimario(ByVal idtercero As Integer) As Boolean
        Dim obj_Conexion As New cls_Conexion
        Dim obj_Reader As SqlDataReader
        Try
            CargarXidterceroprimario = False
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "direccion__CargarXidterceroprimario"
                .Parameters.Add("@idtercero", SqlDbType.Int).Value = idtercero
            End With
            obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
            If obj_Reader.HasRows Then
                CargarVariables(obj_Reader)
                CargarXidterceroprimario = True
            End If
        Catch ex As SqlClient.SqlException
            Throw New Exception("Error al CargarXidterceroprimario los registros de direccion_." & Chr(13) & _
           "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
           "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
           "Descripción: " & ex.Message)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
            obj_Reader = Nothing
        End Try
    End Function

    Public Function Clone() As Object Implements System.ICloneable.Clone
        Dim obj_direccion_Clon As New cls_direccion_
        obj_direccion_Clon.int_iddireccion = Me.int_iddireccion
        obj_direccion_Clon.int_idpais = Me.int_idpais
        obj_direccion_Clon.int_idprovincia = Me.int_idprovincia
        obj_direccion_Clon.int_idlocalidad = Me.int_idlocalidad
        obj_direccion_Clon.int_idbarrio = Me.int_idbarrio
        obj_direccion_Clon.str_codigopostal = Me.str_codigopostal
        obj_direccion_Clon.str_domicilio = Me.str_domicilio
        obj_direccion_Clon.str_altura = Me.str_altura
        obj_direccion_Clon.str_piso = Me.str_piso
        obj_direccion_Clon.str_departamento = Me.str_departamento
        obj_direccion_Clon.int_idtipodireccion = Me.int_idtipodireccion
        obj_direccion_Clon.int_idtercero = Me.int_idtercero
        obj_direccion_Clon.str_observaciones = Me.str_observaciones
        obj_direccion_Clon.bit_primario = Me.bit_primario
        obj_direccion_Clon.col_Items = Me.col_Items
        Return obj_direccion_Clon
    End Function

End Class
